package cn.ac.iie.kgmanager.service;

import cn.ac.iie.kgmanager.domain.Node;
import cn.ac.iie.kgmanager.dto.Page;

import java.util.List;
import java.util.Set;

/**
 * @ClassName NodeService
 * @Author tjh
 * @Date 19/6/12 上午10:49
 * @Version 1.0
 **/
public interface NodeService {
    // 新增节点
    boolean addNode(Node node);
    boolean addNodes(List<Node> nodes);
    // 删除节点
    boolean deleteNode(String id);
    boolean deleteNodes(List<String> ids);
    // 修改节点
    boolean updateNode(Node node);
    boolean updateNodes(List<Node> nodes);
    // 根据ID查询节点
    Node getNodeById(String id);
    // 根据name查询节点
    Node getNodeByName(Set<String> labels, String name);
    Page<Node> getNodeLikeName(Set<String> labels, String name, Integer pageNum, Integer pageSize);
    // 获取周边N层之内的节点
    Page<Node> getAroundNodes(String sourceId, Set<String> labels, Integer depth, Integer pageNum, Integer pageSize);

}
